package ExceptionAndThread.Exception;

import java.io.IOException;

/*
    finally代码块
     格式：
        try{
            可能产生异常的代码
        }catch(定义一个异常的变量，用来接收try种抛出的异常对象){
            异常的处理逻辑，接收异常对象之后，怎么处理异常
            一般会把异常记录到一个日志当中
        }
        ...
         catch(异常类名 变量名){
        }finally{
            无论是否异常都执行
        }
       注意：
        1、不能单独使用，必须和try一起使用
        2、一般用于资源释放（资源回收），无论程序是否异常，最后都要资源释放
*/
public class Fianlly01 {
    public static void main(String[] args) {
        try {
            //可能会产生异常的代码
            demo01("a1.txt");
        } catch (IOException e) {
            //异常的处理逻辑
            e.printStackTrace();
        }finally {
            //无论是否异常都会执行
            System.out.println("finally代码块执行");
        }
    }

    public static void demo01(String s) throws IOException {
        if (!s.equals("a.txt")) {
            throw new IOException("throw文件读取错误");
        }
        System.out.println("throw后续方法");
    }
}
